Rateless codes decoding method for communications systems

ABSTRACT

A method and apparatus for improving performance in communication systems is provided. In one implementation, initial encoded data that has been encoded with a rateless code is received. A quality metric is determined for a communication medium on which the initial encoded data has been received. A modulation scheme used in sending the initial encoded data on the communication medium is identified. An estimate is determined, based on the identified modulation scheme and the determined quality metric, of an amount of mutual information being received per unit of received encoded data. An amount of mutual information being received is determined, based on the determined estimate.

This application claims the benefit, under 35 U.S.C. §365 ofInternational Application PCT/US2006/47911, filed on Dec. 14, 2006,which was published in accordance with PCT Article 21(2) on Jun. 19,2008, in English.

BACKGROUND

Field of the Technology

The present principles relate to communication systems.

Description of Related Art

Layered coding systems are commonly known and used throughout thecommunication industry. An example of such layered coding system is aMIMO (Multiple Input, Multiple Output) architecture. These multi-antennasystems have increased spectral efficiency through the use of spatialmultiplexing.

A MIMO system is a system in which multiple transmit antennas andmultiple receive antennas are employed. MIMO systems can generallyachieve higher capacity in a rich-scattering environment compared toSISO (single input single output) systems. Different approaches can beused to achieve the MIMO capacity: a space-time code can be applied tomultiple transmit antennas over multiple channel uses; a layeredstructure can also be applied where only a one-dimensional code isapplied to each layer. Examples of layered structures are V-BLAST andD-BLAST structures proposed by Bell Labs. In V-BLAST, independentlyencoded data streams are sent through different transmit antennas.Hence, a layer represents one antenna in V-BLAST. In D-BLAST, thedata-stream/antenna association is periodically cycled.

In general, a layered architecture means any interleaving method suchthat, at any time, different antennas belong to different layers andeach antenna index belongs to one and only one layer at any time. Alayer is the indexes of the antenna as a function of time. For purposeof illustration, a layered structure is shown in FIG. 1, where layer 1from time index 1 to 7 is represented by antenna index 3, 2, 1, 3, 2, 1,3.

SUMMARY

In accordance with a general aspect of the present principles, initialencoded data that has been encoded with a rateless code is received. Aquality metric is determined for a communication medium on which theinitial encoded data has been received. A modulation scheme used insending the initial encoded data on the communication medium isidentified. Based on the identified modulation scheme and the determinedquality metric, an estimate is determined of an amount of mutualinformation being received per unit of received encoded data. An amountof mutual information being received is determined, based on thedetermined estimate.

The details of one or more implementations are set forth in theaccompanying drawings and the description below. Other features will beapparent from the description and drawings, and from the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

In the drawings wherein like reference numerals denote similarcomponents throughout the views:

FIG. 1 is diagram of a layered communication structure showing theindexes of an antenna as a function of time;

FIG. 2 is a block diagram of a communication system according to anaspect of the present principles;

FIG. 3 is a more detailed block diagram of an exemplary MIMOcommunication system into which the present principles can beintegrated;

FIG. 4 is a flow diagram of a method according to an aspect of thepresent principles;

FIG. 5a is flow diagram of a method according to another aspect of thepresent principles;

FIG. 5b is flow diagram of a method according to another aspect of thepresent principles;

FIG. 6 is block diagram of an apparatus according to an aspect of thepresent principles;

FIG. 7 is a flow diagram of a method according to another aspect of thepresent principles;

FIG. 8 is block diagram of an apparatus according to a further aspect ofthe present principles;

FIG. 9 is a block diagram of an apparatus according to yet a furtheraspect of the present principles;

FIG. 10 is a flow diagram of a method according to yet a further aspectof the present principles;

FIG. 11 is a flow diagram of a method according to another aspect of thepresent principles;

FIG. 11a is a flow diagram of a method according to another aspect ofthe present principles;

FIG. 12a is flow diagram of a method according to one aspect of thepresent principles;

FIG. 12b is a flow diagram of a method according to another aspect ofthe present principles;

FIG. 13 is flow diagram of a method according to another aspect of thepresent principles;

FIG. 14 is a block diagram of a decoder according to an aspect of thepresent principles;

FIG. 15a is a diagram of an exemplary transmission using a concatenatedcoding according to a further aspect of the present principles;

FIG. 15b is a diagram of exemplary receiving using a concatenated codingaccording to another aspect of the present principles;

FIG. 16 is a flow diagram of a method using concatenated codes on atransmitter side of a communication system according to animplementation of the present principles;

FIG. 17 is a flow diagram of a method using concatenated codes on atransmitter side of a communication system according to a furtherimplementation of the present principles;

FIG. 18 is a flow diagram of a method of using concatenated codes on areceiver side of a communication system according to an implementationof the present principles;

FIG. 19 is a flow diagram of a method of using concatenated codes on areceiver side of a communication system according to a furtherimplementation of the present principles;

FIG. 20 is a block diagram of an apparatus according to an aspect of thepresent principles;

FIG. 21 is a flow diagram of a method for modifying a modulation schemeaccording to an aspect of the present principles;

FIG. 22 is a flow diagram of a method for modifying a modulation schemeaccording to another aspect of the present principles;

FIG. 23 is a block diagram of an apparatus for modifying a modulationscheme according to an aspect of the present principles;

FIG. 24 is a flow diagram of a method for modifying a modulation schemeaccording to a further aspect of the present principles;

FIG. 25 is a flow diagram of a method for modifying a modulation schemeaccording to yet another aspect of the present principles;

FIG. 26 is a flow diagram of a method for modifying a modulation schemeaccording to another aspect of the present principles;

FIG. 27 is a flow diagram of a method for modifying a modulation schemeaccording to another aspect of the present principles;

FIG. 28 is a flow diagram of a method for modifying a modulation schemeaccording to a further aspect of the present principles;

FIG. 29 is a flow diagram of a method for modifying a modulation schemeaccording to another aspect of the present principles;

FIG. 30 is a block diagram of an apparatus for modifying a modulationscheme according to another aspect of the present principles;

FIG. 31 is a flow diagram of a method for modifying a modulation schemeaccording to another aspect of the present principles;

FIG. 32 is a flow diagram of a method for modifying a modulation schemeaccording to another aspect of the present principles;

FIG. 33 is a flow diagram of a method for modifying a modulation schemeaccording to another aspect of the present principles; and

FIG. 34 is a flow diagram of a method for modifying a modulation schemeaccording to another aspect of the present principles.

DETAILED DESCRIPTION

In a layered MIMO system, such as, for example, V-BLAST or D-BLASTarchitectures, rateless codes can be used across sub-channels to provideerror correction. In such a system, codewords can be decoded when enoughinformation has been received. In order to determine when enoughinformation has been received, the channel conditions, for example, theinstantaneous signal-to-noise ratio (SNR), are monitored. The mutualinformation is a function of the SNR. By averaging the mutualinformation over time, the maximum transmission rate can be determined.One problem is that, under poor conditions, the time required toaccumulate enough mutual information in order to decode a codeword maybe long, and systems having real-time constraints, for example,streaming video, will suffer undue delay and error.

According to an implementation of the present principles, the sending ofsubsequent codewords encoded with a rateless code can be based ontiming, or alternatively, can use the SNR information andcorrespondingly stored look up tables to obtain capacity values of thecommunication layer to avoid over-estimation of the received mutualinformation.

FIGS. 2 and 3 show a transmitter 102 and a receiver 104 of acommunication system implementing various concepts of the presentprinciples. By way of example, FIG. 3 shows a V-BLAST communicationsystem showing the transmitter (i.e., encoder) having an inputmultiplexer 106 and a plurality of channel encoders 108 each having itsown antenna 109. The receiver 104 includes a decoder 110 and an outputmultiplexer 112. Those of ordinary skill in the art will recognize thatthe communication system of FIGS. 2 and 3 is disclosed herein forexemplary purposes only and the present principles can be applied to anylayered communication system utilizing rateless codes (e.g., all MIMOsystems). For example, the transmitter and receiver can each be replacedwith a transceiver depending on the particular application. Those ofskill in the art will recognize that the modulators contained within thetransmitter 102 and the demodulators contained within the receiver 104are not shown, for simplification purposes, in FIG. 3.

Referring to FIG. 4, and in accordance with one implementation of someof the present principles, a codeword is encoded with a rateless codeand transmitted 402. Upon transmission, or at a time substantially equalto the transmission, a time interval is monitored 404. The time intervalis generally predetermined and has a length that enables the transmitterto assume that the transmitted codeword has been successfully receivedby a receiver. Those of skill in the art will recognize that the timeinterval can be established and monitored in many different ways withoutdeparting from the spirit of the present principles. For example, thetime interval can be established and monitored through the use ofsetting interrupts using a processor or other computing medium, usingclocks with timing flags or other indicators, and possibly maintaining aseparate timer for each predetermined time interval.

During the time interval, the transmitter determines whether anindication signal in the form of an acknowledgement signal (ACK) hasbeen received (406). When the indication signal ACK has been receivedduring the time interval, the next codeword is transmitted 410.

If the indication signal ACK is not received during the time interval,the system proceeds as if an erasure flag has been received 408 andforces the subsequent transmission of the next codeword 410. Although anerasure flag may not necessarily be received by the transmitter, byforcing the transmitter to comply with the time intervals for codewordtransmission, the real time constraints or requirements of the systemcan still be met.

FIG. 5a shows another implementation of the present principles where theerasure flag is embodied in the form of a negative acknowledgment NACK.Thus, when the time interval has expired 504, the next codeword istransmitted 510 regardless of whether an indication signal has beenreceived. If during the time interval an indication signal is received,a determination is made 506 as to whether the indication is a positiveacknowledgement ACK or a negative acknowledgement NACK.

According to various implementations, the positive acknowledgement ACKcan be an indication that the transmitted codeword was receivedsuccessfully, or an indication of successful receipt and successfuldecoding. The negative acknowledgement NACK can be an indication thatthe transmitted codeword may be unreliable or unable to be fullydecoded. When a NACK is identified, the transmitter modifies asubsequent modulation scheme 508 used to transmit the next codeword 510.In one implementation, the NACK functions to notify the transmitter thatthe current modulation scheme is not working on the decoder side and thetransmitter responds by modifying the modulation scheme for subsequenttransmissions.

In accordance with another implementation shown in FIG. 5b , thetransmitter can monitor or count the number of NACKs (514) received fora predetermined period of time 505. This predetermined period of time505 is generally longer than the predetermined time period 504 and isselected to confirm whether the channel is really bad (in the case ofNACKS), or really good (in the case of ACKs—See FIG. 5c ). If the numberof received NACKs is greater than or equal to the predetermined numberof NACKs received 516 during the predetermined time period 505, thetransmitter can respond by lowering the order of modulation 518 (e.g.,from 16-QAM to QPSK) and transmit the next codeword accordingly, withoutrequiring any further information from the receiver (for example,without requiring a modulation modification index, etc.)

Conversely, as shown in FIG. 5c when the number of received ACKs isgreater than or equal to the predetermined number of ACKs received 522during the predetermined time period 505, the transmitter responds byincreasing the order of modulation 520 (e.g., from QPSK to 16-QAM) priorto the transmission of the next codeword 510. Implementations of FIGS.5b and 5c also may continue to transmit additional codewords whileaccumulating and counting ACKs and/or NACKs.

FIG. 6 shows a diagram of a transmitter 102 according to oneimplementation of the present principles. The transmitter 102 includes acontroller 600, a processor 602 and at least one memory/data storagedevice 608. Processor 602 includes an onboard clock or timer 604 that,as described above, can be used in many different ways to provide thetimer functions of various present principles. According to variousimplementations, controller 600 can be an application specificintegrated circuit (ASIC), a processor programmed to function accordingto one or more of the present principles, or any other combination oflogic or integrated circuit designs necessary to function according toone or more of the present principles. The memory 608 can be embodied inmany different forms without departing from the spirit of the presentprinciples. For example, memory 608 can be a ROM, RAM, removable diskmedia, hard drive, FLASH memory, or any other suitable storage device.

FIG. 7 shows the flow diagram of a method 700 for receiving codewordsencoded with a rateless code. As indicated a codeword encoded with arateless code is received 702. The operation of receiving the ratelessencoded codeword 702 is an ongoing operation. During receipt, a timeinterval is monitored 704 to determine if the time interval has expired.Before the expiration of the time interval, it is determined(repeatedly, if needed) whether the codeword has been received anddecoded successfully 706. If so, an indication signal is sent 708providing a positive indication that the codeword has been successfullyreceived and decoded, and a subsequent codeword is received.

When the time interval at step 704 expires and the successful receiptand decoding of the codeword is not confirmed (step 706), the receiverforces the sending of the indication signal 708 to enable the receipt ofthe subsequent codeword 710. As described above, the indication signalin this instance may include an erasure flag or have the same embodiedin a negative acknowledgement (NACK) that is used to inform the sourceof the received data to modify the modulation scheme used for subsequenttransmitting.

In accordance with one implementation, the indication signal sent 708,can include a modulation modification index or other modulation schememodification instruction to the source of the encoded codewords. This isparticularly applicable when the encoded codeword is not successfullyreceived and/or cannot be successfully decoded (e.g., when the NACKsignal is generated and returned to the source of the received data). Asmentioned above, the modulation modification index or other modulationscheme modification instruction can be a positive increase in themodulation order when successful receipt and/or decoding is confirmedmultiple times within a predetermined time interval.

FIG. 8 shows a block diagram of the decoder 110 and some of theconstituent parts of the decoder 110. The decoder 110 includes areceiver 800, a controller 802, a processor 804, at least one form ofmemory/data storage 806, and a clock 808. As described above withreference to FIG. 7, the decoder 110 receives the encoded codewords andprovides an indication signal to the source of the encoded codewords inresponse to either a positive or negative receipt condition. Thepositive receipt condition, in one implementation, includes successfulreceipt of the encoded codeword, and in another implementation, includesboth successful receipt and decoding of the received encoded codeword.The negative receipt condition, in one implementation, indicates thatthe data received is considered unreliable and may not be decodable, andin another implementation the negative receipt condition indicates thatthe data received is identified as not decodable.

As mentioned above, it is possible that during communication in alayered MIMO system, the computed mutual information (using anunconstrained channel capacity formula) may be much higher than theactual mutual information obtained in the receiver, especially whencommon modulation schemes such as, for example QPSK or 16-QAM are usedin the system. This is an over-estimation of the mutual informationwhich has an adverse effect on subsequent transmissions.

In order to overcome this problem and avoid over-estimation of themutual information acquired in the receiver the actual capacity formulafor the modulation is used in each layer. For example, when the SNR=5db, the capacity for QPSK modulation is 1.7 bits/symbol. In the eventthere is no closed form capacity formula (for example, there is noclose-form capacity formula for 16-QAM modulation) or the capacitycomputation is complicated (for example, would take too much processingtime), a look-up table (LUT) can be used to obtain the received mutualinformation based on a determined quality metric for the layer/channelin the communication system and the type of modulation being used. Inaccordance with one implementation, the quality metric is thesignal-to-noise ratio (SNR) in the layer. Furthermore, look-up tables(LUTs) can also be used to obtain the optimum modulation formatsupported by the communication channels based on the determined qualitymetric for the layer/channel in the communication system.

Referring to FIGS. 9 and 10, there is shown the decoder 110 according toa further implementation of the present principles. The controller 900of the decoder is configured to receive codewords encoded with arateless code (1002). In a rateless code, the codewords may be definedas having an infinite length, although only a finite length istransmitted or received. Throughout this application, the term codewordis frequently used to refer to the portion of an infinite length“codeword” that is actually transmitted or received. The processor 902is configured to compute a quality metric of the communication medium onwhich the codewords are transmitted. The memory 904 stores look-up table(LUT) data that can be used in determining the optimum modulation formatsupported by the channel. The type of LUT data would include variousLUTs for each of the respective modulation schemes known to be used inthe particular communication system. Some examples of such modulationschemes include, but are not limited to, BPSK, QPSK, and 16-QAM.

The computed quality metric is used to determine, using for example theprocessor 902, the optimum modulation format supported by thecommunication medium 1006. Once determined, the controller of thedecoder is configured to receive subsequent codewords based on themodified modulation scheme. The modified modulation scheme was derivedfrom the determined optimum modulation format capable of being supportedby, and used for sending data over, the communication medium 1008.

In accordance with a further implementation 1100, shown in FIG. 11,after receiving the codeword 1102, the decoder identifies the modulationscheme 1104 being used by the source of received data. A quality metricfor the communication channel is then computed 1106, using for example aprocessor. The computed quality metric (for example, the SNR of thechannel or layer) and the known modulation scheme are used to accessmemory 904 and obtain a LUT value corresponding to the known modulationscheme. The optimum modulation format supported by the communicationmedium is determined 1108. The optimum modulation format may bedetermined, for example, by a processor determining which modulationformat's LUT provides the highest expected capacity at the computedquality metric. If the determined optimum modulation format is differentfrom the current modulation scheme (or perhaps, having a difference thatis large enough to justify a switch), the optimum modulation scheme isidentified as a new modulation scheme. A “hysteresis” value can be usedto avoid a ping-pong switching effect. The new modulation scheme is fedback 1110 to a source of the transmitted data. The source is presumed tosend subsequent codewords using the fed-back modified modulation scheme.Subsequent encoded codewords are received 1112 using the fed-backmodified modulation scheme. Of course, the “optimum” format need not beglobally optimum, and many implementations determine a format thatimproves (but need not optimize) performance.

Referring to FIG. 11a , a method 1115 is shown. In variousimplementations, LUTs are also used to determine the amount of mutualinformation that is being received. The method 1115 is an example ofsuch an implementation. The method 1115 includes receiving data encodedwith a rateless code 1002, determining a quality metric for the channel(for example, SNR) 1004. The quality metric may be determined by, forexample, computing the metric, receiving the metric from another device,or accessing the metric from storage. A modulation scheme used intransmitting the received encoded data is identified 1104.

The method 1115 further includes determining an estimate, based on theidentified modulation scheme/format and the determined quality metric,an estimate of an amount of mutual information being received per unitof received encoded data. Determining the estimate may be performed invarious ways, such as, by example using a closed-form capacity equation.The method 1115 illustrates another implementation that may provideincreased speed, and that will also accommodate capacity equations thatare not closed-form.

The method 1115 further includes accessing a particular LUT based on theidentified modulation scheme/format and the determined quality metric1120, and accessing an entry in the particular LUT that provides anestimate of an amount of mutual information being received per unit ofreceived encoded data 1130. The method 1115 further includes determiningan amount of mutual information received based on the accessed entry1140. In one implementation, the LUT is a one-dimensional table (forexample, a list) including mutual information for a given modulationformat, with each entry corresponding to a different SNR. In anotherimplementation, the LUT is a two-dimensional table (for example, amatrix), with rows corresponding to modulation format and columnscorresponding to SNR, and entries corresponding to mutual informationindicators for a particular row (modulation format) and column (SNR).The mutual information indicators (the entries in the LUTs) may bedetermined, for example, based on a capacity formula corresponding tothe identified modulation scheme and SNR. This use of LUTs may beperformed without using other concepts and aspects described in thisapplication, or may be used in conjunction with one or more otherconcepts and aspects.

In MIMO and other communication systems, although the capacitycalculation is performed to compute the received mutual information,unfortunately, it is typically only an approximation and accurate in thelimit over time. Thus, even when the overall received mutual informationis declared to be sufficient for decoding by the receiver, it may, infact, still be insufficient to decode a codeword.

According to one aspect of the present principles, this insufficiency isaddressed by enabling the accumulation of additional mutual informationin the receiver beyond that which is considered an ordinary amount toenable accurate decoding of the received codeword. The accumulation ofadditional mutual information provides a higher probability ofsuccessful decoding.

Thus, referring to FIGS. 12a and 12b , there is shown a method 1200according to one implementation of the present principles. Initially,data for a data block encoded with a rateless code is received 1202. Adetermination is then made that an initial predetermined amount ofmutual information (MI) for the data block has been received 1203 by areceiver. This “initial predetermined amount” is an amount that isbelieved to be sufficient to enable the receiver to successfully decodea received codeword. Those of skill in the art will recognize that this“initial predetermined amount” may be different for each communicationsystem, and takes into consideration any known communication mediumvariables such as noise, etc.

Once the “initial predetermined amount” of mutual information has beenreceived, additional encoded data for the data block is received 1204,and another determination is made as to whether an extra predeterminedamount of mutual information for the data block has been received beyondthe initial predetermined amount 1205. One the additional amount or“extra predetermined amount” of mutual information has been accumulated,the receiver decodes the received codeword (1206) and then continues toreceive MI and encoded codewords for the next received transmission. Thedecoding of the codeword 1206, in this implementation is performed usingonly the initial predetermined amount of encoded data. As shown in FIG.12b , in another implementation, the decoding 1206 can be performedusing both the initially received encoded data and the additionallyreceived encoded data 1208. By using the extra accumulated MI associatedwith the extra/additional encoded data for the data block (1204), theprobability of successful decoding by the receiver is increased.

Those of skill in the art will recognize that the actual amount of the“extra predetermined amount” can vary from communication system tocommunication system without departing from the spirit of the presentprinciples.

In accordance with another implementation, the amount of initial mutualinformation and extra mutual information that is accumulated can bebased on timing. For example, and referring to FIG. 13, there is shown amethod 1300 according to another implementation of the presentprinciples. As shown, encoded data for a data block encoded with arateless code is received 1302. A determination is then made as towhether or not an initial predetermined amount of MI associated with theencoded data has been received 1304. This determination 1304 can bebased, for example, on a time interval or based on the capacity formulaof the communication medium. Further, look-up tables may be used thatcontain estimates of the mutual information per unit of received databased on a capacity formula for a given modulation and signal-to-noiseratio. When the decoder determines that the initial predetermined amountof MI has been received (either by the expiration of a time interval, orotherwise), the receiver begins to accumulate (receive) additionalencoded data for the data block 1306. The receiver accumulates theadditional or extra encoded data and corresponding MI until an extrapredetermined amount of MI has been received 1308. The determination asto the extra predetermined amount of MI can be based on time, bitlength, or any other known method for determining an expected amount ofreceived data. When it has been determined that the extra predeterminedamount of MI has been received, the codeword is decoded 1310 and thereceiver/decoder can return to the beginning and start receiving a nexttransmission of encoded codewords.

As mentioned above, the first predetermined time interval is of a lengththat is considered sufficient to enable or allow the decoder tosuccessfully receive and decode the encoded codeword. This firstpredetermined time interval may be different for differentcommunications systems and different modulation techniques employed bysuch systems. Implementations may combine the two timers into a singletimer.

FIG. 14 shows a decoder 1400 according to an implementation of thepresent principles. The decoder includes a controller 1402 configured toreceive the mutual information (the amount of mutual information iscalculated based on the received encoded codewords or other receiveddata). Through the application of a processor 1404 and a memory 1406,the controller is further configured to receive both the initialpredetermined amount of mutual information, and the extra or additionalpredetermined amount of mutual information. In one implementation, thedecoder 1400 may include a receiver 1410 adapted to receive the mutualinformation.

In accordance with the present principles, the accumulation of extra oradditional mutual information may provide increased reliability, howeverthis typically comes with a trade-off of slower data rates due to theadded information. In addition, the accumulation of additional or extramutual information leads to longer codewords for the decoder to decodeand therefore generally results in a higher decoding complexity. Thesetrade-offs are acceptable for many applications. However, in view of theincreased complexity in decoding and/or the slower data rates resultingfrom the accumulation of additional mutual information, someimplementations use concatenated coding for the codewords, in which theouter code is, for example, a block code, such as a Reed Solomon or BCHcode, and the inner code is a rateless code.

In one such implementation, K information bits are first encoded into acodeword of length N bits using an (N, K) outer block code. Eachcodeword is broken up into sub-blocks of smaller size. For example, anN-bit codeword can be broken into four sub-blocks, each having a lengthof N/4 bits. An inner rateless code is applied to each sub-block of thecodeword. By breaking up the block codeword into sub-blocks prior toencoding with an inner rateless code, the decoding complexity of therateless codewords can be reduced because the size of the ratelesscodeword required for successful decoding is expected to be smaller.Alternatively, by breaking up the codeword into sub-blocks prior toencoding with the rateless code, the outer block codes can be larger andmay thereby provide more error correction for a given number of paritybits than would be achieved with several smaller block codes usedserially. Additionally, larger block codes provide better burst errorcorrection, compared to smaller block codes, by, for example, correctingbursts that a smaller block code would not be able to correct. Further,at least some of the advantages of a larger block code and a smallerrateless code may be achieved together in the same implementation.

FIGS. 15a and 15b show diagrams of the configuration for sending andreceiving of codewords encoded with an inner rateless code,respectively, according to an implementation of the present principles.As shown in FIG. 15a , the transmitter/encoder sequence is input intoouter encoder 1502 for encoding blocks of the input data sequence intocodewords provided at the output of the encoder 1502. A divider 1503divides the data block output into sub-blocks, and an inner encoder 1504encodes the sub-blocks with a rateless code. The encoded transmitsequence is input to a modulator 1506 where it is modulated andtransmitted via the antenna. FIG. 15b shows the receiver/decoder side,where a demodulator 1508 receives and demodulates the received modulatedsignal. An inner rateless code decoder 1510 decodes the rateless codesof the sub-blocks first to determine the sub-blocks, and then a combiner1511 combines the sub-blocks into outer codewords, which are passed intothe outer decoder 1512 to further remove the residual errors and cleanup the decoding. The combiner 1511 and the divider 1503 may beimplemented, for example, in software and/or in hardware. One softwareimplementation uses registers and appropriate instructions, and onehardware implementation uses a shift register and appropriate logic.

FIG. 16 shows a method 1600 for sending encoded data according toanother implementation of the present principles. Data is accessed 1602,an outer block code is generated for the data 1604, and the outer blockcodeword is broken into sub-blocks 1606. Once sub-divided, the sub-blockcodewords are encoded using a rateless code 1608. Once encoded with arateless code, the rateless codewords for the sub-blocks are sent 1610to a receiver.

According to a further implementation, a method 1700 generates an outerblock codeword for an input block of data 1710, and an inner ratelesscodeword is determined for a sub-block of the outer block codeword 1720.The method 1700 then begins sending a predetermined amount of therateless codeword 1730. After a first time interval expires 1740, thepredetermined amount is presumed to have been sent, and the method 1700begins sending a second predetermined amount of the rateless codeword1750. After a second time interval expires 1750, the secondpredetermined amount is presumed to have been sent. The method 1700 canbe repeated for sending a rateless codeword for each sub-block. Further,the timers may be combined in an implementation.

FIGS. 18-20 show another implementation of the present principles on theside of the receiver. Referring to FIG. 18, a receiver starts byreceiving a predetermined amount of mutual information for a codewordencoded with a concatenated code 1802. Once the predetermined amount isreceived, the receiver continues to accumulate or receive an extraamount of mutual information beyond the predetermined amount 1804. Oncethe extra mutual information is received, the receiver is configured todecode the concatenated encoded codeword by first decoding the innerrateless codes to determine the sub-blocks 1806. Once the inner ratelesscode is decoded, the sub-blocks are combined to resolve the blockcodeword 1808. Once the block codeword is resolved, the outer code isdecoded 1810 to clean up residual errors.

FIG. 19 shows another implementation where timers are established by thereceiver in order to determine that enough information has beenreceived. In the present example, the receiver starts to receive thepredetermined amount of mutual information for a codeword encoded with aconcatenated code 1902. A first predetermined time period 1903 ismonitored for its expiration. The receiver continues to receive thepredetermined amount of mutual information until the first predeterminedtime period expires. Upon expiration of the first predetermined timeperiod, the “extra” or additional mutual information is received(accumulated) at the receiver 1904. This accumulation of extra mutualinformation is performed for a second predetermined time period 1905.Upon expiration of this second time period, the codeword is decoded byfirst decoding the inner rateless codes to determine the sub-blocks ofthe block codeword 1906. The sub-blocks are then combined to resolve theblock codeword 1907. Once combined, the outer block code is decoded 1908to clean up residual errors.

FIG. 20 shows a block diagram of a decoder 2000 according to oneimplementation of the present principles. As shown, the decoder 2000includes a controller 2002, a processor 2004, and a memory 2006. Thecontroller 2002 is configured to receive the encoded codewords (whichprovide the mutual information) through receiver 2010. The processor2004 includes a clock 2008 and can be programmed to establish all timeintervals required for receiving mutual information. The memory 2006′ ispart of the decoder 2000 and can include information, such as, forexample, the requisite time intervals or periods for mutual informationreceipt depending on things such as, for example, the modulation schemebeing used to transmit the encoded data. The decoder 2000 is furtherconfigured to decode the inner rateless code of the respectivesub-blocks such that they can be combined to resolve the codeword. Thedecoding of the outer codes is performed after the codeword has beenresolved by the decoding of the inner rateless codes and the combinationof the sub-blocks.

Those of skill in the art will recognize that the controller andprocessor can be configured separately to function together, oralternatively could be embodied in a single device having correspondingprogram and logic to function as described herein.

The use of acknowledgement signals in layered communication systemsemploying rateless codes has its advantages, as discussed above.Particularly, an acknowledgement can be sent as soon as enough mutualinformation has been deemed received. However, although valuable, thesending of such acknowledgements may not take full advantage of thecommunication channel (for example, may not utilize the full capacity ofthe channel to increase data rates).

By way of example, when the modulation on each channel is BPSK or QPSK,the channel may support a higher order of modulation (e.g., 16-QAM),which will, in turn, support higher data rates.

There are several ways to determine whether such modulation schememodifications are possible. The implementations shown and described withreference to FIG. 21-34 are for exemplary purposes and show the use of acommunication quality determination. Those of skill in the art willrecognize that other methods and/or implementations of the same conceptscan be made without departing from the spirit of the present principles.

Referring to FIG. 21, there is shown a method 2100 according to animplementation of the present principles. Initially, information isaccessed 2102 relating to the quality of communications over the atleast one communication channel. Based on that accessed information, anindication is provided 2104 for a modulation scheme to be used to senddata over the channel encoded with a rateless code. In this example, theinformation relating to the quality of the communication channel can bethe frequency of occurrences of indication signals within apre-designated or predetermined time period.

FIG. 22 shows a modified implementation of the method of FIG. 21. Inthis method 2200, information relating to the quality of thecommunications over the at least one communication channel is accessed2202, and indication signals are identified. Upon initiation of theaccessing, a time interval is established 2208. During the timeinterval, the number or frequency of occurrences of identifiedindications signals 2206 is counted. Upon expiration of the timeinterval, a modulation scheme for transmitting subsequent data isindicated 2204 in response to and based upon the accessed informationrelating to quality. The length of the predetermined time interval 2208can be any suitable length of time based on, for example, a currentmodulation scheme being used, an estimated time period based on expectedresults, etc.

FIG. 23 shows an apparatus 2300 according to an implementation of thepresent principles. The apparatus includes a controller 2302, aprocessor 2304 having a clock 2306, a memory 2308, and connection to abi-directional communication channel 2310. As discussed above, thequality of communications over the communication channel 2310 isdetermined and used to indicate a modulation scheme to be used for thechannel. In this manner, controller 2302 accesses information relatingto the quality of the communication channel 2310. Processor 2304 isconfigured to provide the indication for a modified modulation schemefor the subsequent sending of data encoded with a rateless code over thecommunication channel 2310 using the accessed quality information.

By way of example, processor 2304 has been shown with a clock 2306.Those of skill in the art will recognize that the clock 2306 can beimplemented in many different ways without departing from the spirit ofthe present principles. For purposes of this example, clock 2306 can beused to establish a predetermined time interval, during which, thecontroller 2302 accesses the information relating to the quality of thecommunication channel 2310. In this manner, the monitoring of thecommunication quality over the channel 2310 can be limited to a pre-setor predetermined time period, which assists in meeting any of the realtime constraints of the communication system.

FIG. 24 shows the method according to another implementation of thepresent principles. In this example, a decoder monitors the frequency ofoccurrences at which indications signals are received over the at leastone communication channel 2402. These indication signals are indicativeof the quality of the communications over the at least one communicationchannel. Based on the monitored frequency of occurrences of suchindication signals, the modulation scheme being used to transmit data onthe communication channel can be varied or changed 2404 for subsequentdata transmissions. This variation or change can be, for example, aninstruction to increase the modulation order for higher data rates, oralternatively, an instruction to decrease the modulation order, whichresults in lower bit rates, but increased reliability of the data whenit has been determined that the communication channel can better supportthe lower order of modulation.

According to several exemplary implementations, the form of theindication signals can be acknowledgement signals (e.g., ACK), negativeacknowledgement signals (HACK), or any other designated signal whosegeneration or receipt can be used to determine the communication channelquality. Examples of the use of ACKs and NACKs have been describedearlier.

FIG. 25 shows a further modified method of the implementation of FIG.24, where a time interval is imposed on the monitoring of the frequencyof occurrences of the received indication signals. As shown, thefrequency of occurrences of received indication signals is monitored2502 during a predetermined time interval 2504. Upon expiration of thepredetermined time interval 2504, the modulation scheme used to transmitsubsequent data over the at least one communication channel is varied2506 to maximize the modulation scheme and increase data rates to thehighest the channel can support. However, as mentioned above, thevariation of the modulation scheme could be a reduction or request forlower order modulation, as the communication channel may not be capableof supporting higher orders of modulation. Implementations may vary inhow they determine whether a channel is capable of supporting higherorders of modulation. For example, one implementation declares that achannel can support a particular modulation format (order) only if thereis a high expectation that all errors will be corrected (using a typicalforward-error-correction code) in data sent over the channel.

FIG. 26 shows a method 2600 according to a further implementation of thepresent principles. Initially, the frequency of occurrences of thereceived indication signals is monitored 2602. At this point, adetermination is made 2604 of a modulation format that is expected toimprove, or perhaps maximize, the “good” throughput (the amount of dataper unit time that is correctly received and decoded). The determinedformat may be an optimal modulation format that can be supported by theat least one communication channel using the frequency of occurrence ofindication signals data. LUTs may be developed, for example, tocorrelate ACK frequency (for a given modulation format) with the highestmodulation format that can be supported. The subsequent varying of themodulation scheme 2606 is performed using the determined modulationformat supported by the channel.

FIG. 27 shows a method 2700 according to another implementation of thepresent principles. In this implementation, the receiver of transmitteddata generates and transmits indication signals to the transmitterindicating safe receipt and decoding of data 2702 received over the atleast one communication channel. The frequency of occurrences of thegenerating indication signals is monitored 2704. Based on the monitoredfrequency of occurrences of the indication signals, an indication of amodulation scheme for sending subsequent data over the channel (2706) isprovided to the source of the received data.

FIG. 28 shows a modified method 2800 of the method shown in FIG. 27. Inthis implementation, a predetermined time interval is established 2805for timing the monitoring of the frequency of occurrences of thegenerated indication signals 2804. Upon expiration of the predeterminedtime interval, the receiver indicates a modulation scheme for subsequentdata transmitted over the at least one communication channel 2806.

FIG. 29 shows another implementation of the method 2900 according to thepresent principles. As shown, the receiver generates and transmitsindication signals 2902 to the source of the received data, and thefrequency of occurrences of the same is monitored 2904. As before, inthis implementation, the monitoring is performed for a predeterminedtime interval 2906. When the time interval expires, the receivertransmits a modulation index 2908 to the source of incoming data tomodify the modulation scheme used to transmit subsequent data over theat least one communication channel.

The modulation index can be any type of signal that thetransmitter/encoder can recognize and act upon. For example, themodulation index can be a control signal provided in a header of otherdata being fed back from the receiver to the transmitter. In otherimplementations, it can be part of the indication signal (either ACK orNACK). Those of skill in the art will recognize that the form of themodulation index can be any suitable form.

FIG. 30 shows a decoder 3000 according to one implementation of thepresent principles. The decoder 3000 includes a receiver 3002 configuredto receive incoming data via the at least one communication channel3012. The incoming data may be encoded with a rateless code. Acontroller 3004 is configured to compute a quality metric for thecommunication channel 3012. The quality metric represents the capacityof the at least one communication channel. Once the quality metric iscomputed, the controller, in conjunction with a processor 3006, causesthe decoder to generate a modulation index using the computed qualitymetric. As discussed above, the modulation index is a control signalthat is fed back to the source of transmitted data to provide saidsource with instructions to modify the modulation scheme being used totransmit subsequent data over the communication channel 3012. Thedecoder 3000 also includes a memory/data unit 3008 and a clock 3010.

In accordance with this implementation, the quality metric is a tangibledetermination as to the level of quality that can be obtained on thecommunication channel 3012. One example of such quality metric would bethe Signal to Noise (SNR) ratio of the channel 3012. Using the SNR ofthe channel, along with other known information, such as, for example,the current modulation scheme, a new or modified modulation scheme canbe identified for maximizing the use of the channel. In systems, such asa layered communication system where there are multiple communicationchannels for transmitting the modulated data, an average SNR for all thechannels can be used as the quality metric or an average SNR for eachchannel can be used as the quality metric of each channel. The averagecould be an average over the layers, an average over time, etc. In otheralternative implementations, a block wise SNR may also be used withoutdeparting from the spirit of the present principles. Otherimplementations may include a peak SNR determination for use as thequality metric.

Referring to FIG. 31, there is a shown an exemplary method 3100implemented by the decoder 3000 according to an aspect of the presentprinciples. Initially, the decoder accesses information relating to thequality of the communication over the at least one communication channel3102. A determination is then made as to the modulation format currentlybeing used 3104 in sending signals over the at least one communicationchannel. Once the current modulation format is determined, the decodercan use that information, in conjunction with the accessed qualityinformation and provide an indication 3106 to a source of received datawith instructions to modify the modulation format used for sendingsubsequent data.

According to another implementation, shown in FIG. 32, a method 3200provides for accessing information relating to the quality ofcommunications 3202, and for determining the current modulation format3204 being used on the at least one communication channel. The qualitymetric (for example, SNR or frequency of ACKs) is then computed 3206from the accessed information relating to the quality of thecommunication channel. The computed quality metric is then used, inconjunction with the known or current modulation format, to indicate amodulation scheme to be used for sending subsequent data over thechannel 3208.

FIG. 33 shows another implementation of the method 3300 according to thepresent principles. In this implementation, the decoder receives dataencoded with a rateless code 3302. Using this data, the decoder computesa quality metric 3304 which provides information relating to the optimummodulation format supported by the at least one communication channel.

Using the computed quality metric, the decoder instructs the source ofthe received data to modify the modulation scheme used to transmitsubsequent data over the at least one communication channel 3306.

FIG. 34 shows a modified method implementation 3400 of the method 3300shown in FIG. 33. As before, the decoder receives data encoded with arateless code 3402, and computes the quality metric 3404 indicating theoptimum modulation format supported by the at least one communicationchannel. The decoder then generates a modulation index signal inresponse to the computed quality metric for indicating a modulationscheme to be used by the source of the received data for sendingsubsequent data over the at least one communication channel.

As should be clear, many implementations described in this applicationmay be performed by a receiver, a transmitter, or both.

The various aspects, implementations, and features may be implemented inone or more of a variety of manners, even if described above withoutreference to a particular manner or using only one manner. For example,the various aspects, implementations, and features may be implementedusing, for example, one or more of a method, an apparatus, an apparatusor processing device for performing a method, a program or other set ofinstructions, an apparatus that includes a program or a set ofinstructions, and a computer readable medium.

An apparatus may include, for example, discrete or integrated hardware,firmware, and software. As an example, an apparatus may include, forexample, a processor, which refers to processing devices in general,including, for example, a microprocessor, an integrated circuit, or aprogrammable logic device. As another example, an apparatus may includeone or more computer readable media having instructions for carrying outone or more processes.

A computer readable medium may include, for example, a software carrieror other storage device such as, for example, a hard disk, a compactdiskette, a random access memory (“RAM”), or a read-only memory (“ROM”).A computer readable medium also may include, for example, formattedelectromagnetic waves encoding or transmitting instructions.Instructions may be, for example, in hardware, firmware, software, or inan electromagnetic wave. Instructions may be found in, for example, anoperating system, a separate application, or a combination of the two. Aprocessor may be characterized, therefore, as, for example, both adevice configured to carry out a process and a device that includes acomputer readable medium having instructions for carrying out a process.

A number of implementations have been described. Nevertheless, it willbe understood that various modifications may be made. For example,elements of different implementations may be combined, supplemented,modified, or removed to produce other implementations. Accordingly,other implementations are within the scope of the following claims.

The invention claimed is:
 1. A method comprising: receiving initialencoded data that has been encoded with a rateless code; determining aquality metric for a communication medium on which the initial encodeddata has been received; identifying a modulation scheme used in sendingthe initial encoded data on the communication medium; determining, basedon the identified modulation scheme and the determined quality metric,an estimate of an amount of mutual information being received for thereceived rateless encoded data, wherein the amount of mutual informationis useful for indicating whether a decoder is able to decode thereceived rateless encoded data; and determining an amount of mutualinformation being received based on the determined estimate.
 2. Themethod of claim 1, wherein determining the estimate of the amount ofmutual information comprises: accessing a look-up table, based on theidentified modulation scheme and the determined quality metric; andaccessing an entry in the accessed look-up table that provides anestimate of an amount of mutual information being received per unit ofreceived encoded data.
 3. The method of claim 1, wherein the estimate ofthe amount of mutual information is based on a capacity formulacorresponding to the identified modulation scheme.
 4. The method ofclaim 1 further comprising: determining a modulation format supported bythe communication medium based on the determined quality metric; andreceiving, based on the determined modulation format, subsequent encodeddata that has been encoded with the rateless code.
 5. The method ofclaim 4, further comprising feeding back a modified modulation schemebased on the determined modulation format supported by the channel suchthat a subsequently received codeword is transmitted using said modifiedmodulation scheme.
 6. The method of claim 5, wherein said receiving asubsequent codeword further comprises determining, based on thedetermined modulation format supported by the communication medium, howmuch mutual information to receive in order to decode the encodedcodeword using the modified modulation scheme.
 7. The method of claim 5,wherein said receiving a subsequent codeword further comprisesdetermining, based on the determined modulation format supported by thecommunication medium, how long to receive the mutual information inorder to decode the encoded codeword using the modified modulationscheme.
 8. The method of claim 4, wherein said determining furthercomprises: accessing a memory containing at least one look-up tablecorresponding to the identified modulation scheme; and applying saiddetermined quality metric to the accessed look-up table to determine themodulation format supported by the communication medium.
 9. The methodof claim 1, wherein determining the estimate of the amount of mutualinformation comprises: estimating, based on the identified modulationscheme and the determined quality metric, the amount of mutualinformation being received per unit of the received rateless encodeddata.
 10. An apparatus comprising: a controller adapted to receive, on acommunication medium, initial encoded data that has been encoded with arateless code; and a processor adapted (1) to determine a quality metricfor the communication medium, (2) to identify a modulation scheme usedin sending the initial encoded data on the communication medium, (3) toestimate, based on the identified modulation scheme and the determinedquality metric, an amount of mutual information being received for thereceived rateless encoded data, wherein the amount of mutual informationis useful for indicating whether a decoder is able to decode thereceived rateless encoded data; and (4) to determine an amount of mutualinformation being received based on the estimate.
 11. The apparatus ofclaim 10 further comprising a memory storing a look-up table thatincludes an entry providing an estimate of an amount of mutualinformation received per unit time over a communication medium having aparticular quality metric and using a particular modulation scheme, andwherein the processor is adapted to determine the estimate by: accessinga look-up table based on the identified modulation scheme and thedetermined quality metric, and accessing an entry in the accessedlook-up table that provides the estimate of an amount of mutualinformation being received per unit of received encoded data.
 12. Theapparatus of claim 11, wherein the memory stores a plurality of look uptables (LUTs) corresponding to different modulation schemes that can beused on the communication medium.
 13. The apparatus of claim 10, whereinsaid processor is configured to compare said determined quality metricwith one of a plurality of LUTs corresponding to the identifiedmodulation scheme.
 14. The apparatus of claim 10, wherein said processoris configured to identify the modulation scheme by receiving a controlsignal identifying the modulation scheme being used on the communicationmedium.
 15. The apparatus of claim 10, wherein said processor is furtheradapted to determine a modulation format supported by the communicationmedium using the determined quality metric.
 16. The apparatus of claim15, wherein said controller feeds back a modified modulation schemebased on the determined modulation format supported by the medium suchthat a subsequently received codeword encoded with a rateless code ismodulated with the modified modulation scheme.
 17. The method of claim10, wherein the processor is adapted to estimate by: estimating, basedon the identified modulation scheme and the determined quality metric,the amount of mutual information being received per unit of the receivedrateless encoded data.
 18. An apparatus comprising: means for receivinginitial encoded data that has been encoded with a rateless code; meansfor determining a quality metric for a communication medium on which theinitial encoded data has been received; means for identifying amodulation scheme used in sending the initial encoded data on thecommunication medium; means for estimating, based on the identifiedmodulation scheme and the determined quality metric, an amount of mutualinformation being received for the received rateless encoded data,wherein the amount of mutual information is useful for indicatingwhether a decoder is able to decode the received rateless encoded data;and means for determining an amount of mutual information being receivedbased on the estimate.
 19. The apparatus of claim 18, furthercomprising: means for determining a modulation format supported by thecommunication medium based on the determined quality metric; and meansfor receiving, based on the determined modulation format, subsequentmutual information for a codeword encoded with the rateless code. 20.The apparatus of claim 19, further comprising means for feeding back amodified modulation scheme based on the determined modulation formatsuch that the subsequently received codeword is transmitted using saidmodified modulation scheme.
 21. A program storage device having anapplication program tangibly embodied thereon, the application programincluding instructions for performing at least the following: receivinginitial encoded data that has been encoded with a rateless code;determining a quality metric for a communication medium on which theinitial encoded data has been received; identifying a modulation schemeused in sending the initial encoded data on the communication medium;estimating, based on the identified modulation scheme and the determinedquality metric, an amount of mutual information being received for thereceived rateless encoded data, wherein the amount of mutual informationis useful for indicating whether a decoder is able to decode thereceived rateless encoded data; and determining an amount of mutualinformation being received based on the estimate.
 22. The method ofclaim 21, wherein estimating comprises: estimating, based on theidentified modulation scheme and the determined quality metric, theamount of mutual information being received per unit of the receivedrateless encoded data.